/**
 * 
 */
package org.ChrisRiffle.Acme.AcmeTraverser;

import java.io.File;



/**
 * 
 * Intended to be implemented by a class that will perform an action upon a file
 * object when called by the {@link TraverserControler} class. Implementing
 * classes should define the shutDown method to perform processing necessary for
 * shutting themselves down
 * 
 * @author RIF
 * 
 */
public interface ActionPerformer {

	/**
	 * Implementing classes should implement this method to perform their
	 * desired action upon the specified file parameter at the time when the
	 * {@link TraverserControler} executes this method
	 * 
	 * @param pFile
	 *            The file to perform an action upon
	 */
	public void doAction(File pFile);

	/**
	 * Implementors should do whatever they need to properly shut themselves
	 * down (ex: save data to a file on disk)
	 */
	public void shutDown();
	
	/**
	 * Should get the output file name
	 * @return
	 * 		the output file name
	 */
	public String getOutputFileName();

}
